#include "u8g2_rotation_test.h"

void drawRotation(u8g2_t *u8g2, const char *s)
{
    u8g2_SetFont(u8g2, u8g2_font_6x10_tf);
    u8g2_FirstPage(u8g2);
    do
    {
        u8g2_DrawStr(u8g2, 2, 15, "Hello World!");
        u8g2_DrawStr(u8g2, 2, 30, s);
        u8g2_DrawFrame(u8g2, 0, 0, u8g2_GetDisplayWidth(u8g2), u8g2_GetDisplayHeight(u8g2));

        u8g2_DrawStr(u8g2, 2, 45, u8x8_u16toa(u8g2_GetDisplayWidth(u8g2), 5));
        u8g2_DrawStr(u8g2, 2, 60, u8x8_u16toa(u8g2_GetDisplayHeight(u8g2), 5));

    } while (u8g2_NextPage(u8g2));
    LL_mDelay(2000);
}

void RotationTest_PageBuffer(u8g2_t *u8g2)
{
    u8g2_ClearDisplay(u8g2);
    u8g2_SetDisplayRotation(u8g2, U8G2_R0);
    u8g2_SetFlipMode(u8g2, 0);
    drawRotation(u8g2, "R0,F0");
    u8g2_ClearDisplay(u8g2);
    u8g2_SetFlipMode(u8g2, 1);
    drawRotation(u8g2, "R0,F1");

    u8g2_ClearDisplay(u8g2);
    u8g2_SetDisplayRotation(u8g2, U8G2_R1);
    u8g2_SetFlipMode(u8g2, 0);
    drawRotation(u8g2, "R1,F0");
    u8g2_ClearDisplay(u8g2);
    u8g2_SetFlipMode(u8g2, 1);
    drawRotation(u8g2, "R1,F1");

    u8g2_ClearDisplay(u8g2);
    u8g2_SetDisplayRotation(u8g2, U8G2_R2);
    u8g2_SetFlipMode(u8g2, 0);
    drawRotation(u8g2, "R2,F0");
    u8g2_ClearDisplay(u8g2);
    u8g2_SetFlipMode(u8g2, 1);
    drawRotation(u8g2, "R2,F1");

    u8g2_ClearDisplay(u8g2);
    u8g2_SetDisplayRotation(u8g2, U8G2_R3);
    u8g2_SetFlipMode(u8g2, 0);
    drawRotation(u8g2, "R3,F0");
    u8g2_ClearDisplay(u8g2);
    u8g2_SetFlipMode(u8g2, 1);
    drawRotation(u8g2, "R3,F1");

    u8g2_ClearDisplay(u8g2);
    u8g2_SetDisplayRotation(u8g2, U8G2_MIRROR);
    u8g2_SetFlipMode(u8g2, 0);
    drawRotation(u8g2, "MIRROR,F0");
    u8g2_ClearDisplay(u8g2);
    u8g2_SetFlipMode(u8g2, 1);
    drawRotation(u8g2, "MIRROR,F1");

    u8g2_ClearDisplay(u8g2);
    u8g2_SetDisplayRotation(u8g2, U8G2_R0);
    u8g2_SetFlipMode(u8g2, 0);
}
